package com.ml.loan.common.exception;

import org.apache.commons.lang3.StringUtils;

/**
 * 断言处理，抛出各种异常
 *
 * @Author Mickey
 * @Date 2021/3/11 19:14
 **/
public class Asserts {

    public static void fail(String message) {
        throw new BusinessException(message);
    }

    /**
     * 断言对象不为空
     * obj 为空则抛异常
     *
     * @param obj
     * @param msg
     */
    public static void notNull(Object obj, String msg) {
        if (obj == null) {
            throw new BusinessException(msg);
        }
    }

    /**
     * 断言对象为空
     * 如果对象obj不为空，则抛出异常
     *
     * @param object
     * @param msg
     */
    public static void isNull(Object object, String msg) {
        if (object != null) {
            throw new BusinessException(msg);
        }
    }

    /**
     * 断言表达式为真
     * 如果不为真，则抛出异常
     *
     * @param expression 是否成功
     */
    public static void isTrue(boolean expression, String msg) {
        if (!expression) {
            throw new BusinessException(msg);
        }
    }

    /**
     * 断言两个对象不相等
     * 如果相等，则抛出异常
     *
     * @param m1
     * @param m2
     * @param msg
     */
    public static void notEquals(Object m1, Object m2, String msg) {
        if (m1.equals(m2)) {
            throw new BusinessException(msg);
        }
    }

    /**
     * 断言两个对象相等
     * 如果不相等，则抛出异常
     *
     * @param m1
     * @param m2
     * @param msg
     */
    public static void equals(Object m1, Object m2, String msg) {
        if (!m1.equals(m2)) {
            throw new BusinessException(msg);
        }
    }

    /**
     * 断言参数不为空
     * 如果为空，则抛出异常
     *
     * @param s
     * @param msg
     */
    public static void notEmpty(String s, String msg) {
        if (StringUtils.isEmpty(s)) {
            throw new BusinessException(msg);
        }
    }

}
